A popular application for desktop- and server-based computing is the searchable database. In such an application, typically a large number of database records consisting of various fields of information that describe various attributes of entities of any sort are stored by means of disk storage or in computer memory, and may be queried for specific information by means of a human-computer interface adapted for the purpose. For example, an internet search engine might, through a web browser on a desktop computer, provide an interface for searching a database of records that is stored either on the desktop computer or remotely on a server computer. The database records might represent attributes of documents found on the internet, and the provided interface might include means for a user to specify a search query representing the type of information that is desired to be retrieved. The search engine utilizes the search query to identify matching items in the database, retrieves information about the matching items, and communicates a representation of the matching items to the user. Because a typical internet search engine, for example, is commonly understood to utilize a client computer (e.g. desktop or handheld) that provides a displays screen, and one or more remote server computer(s) for database storage and searching, it will be understood that a computer herein may be a single computer or a networked system of computers, for example, client and server computer(s) working together as an entity through, for example, a web browser application and the Internet.
This type of application presents many opportunities for an interface designer to provide means for user specification of the search query, and to provide means by which results may be communicated back to the user. For example, a search engine interface might provide an editable field in which to type a textual phrase or set of keywords as the search query. It is also known in the art to provide for multiple possibly non-textual search terms as components of the search query, for example, to specify that only records of a certain class or a certain age be searched. Once matches are identified and retrieved, the search engine might then represent the retrieved information, for example, by displaying a list of titles of database records that match the search query. Such a list might also be optionally sortable by derived criteria such as relevance scores or the age of each corresponding database record. Prior art search engines predominantly follow the above described general design or variations thereof. This family of designs can be characterized as responding to primarily textual search queries with a primarily textual expression of results, whose relevance are determined by means of various often proprietary measures of textual or semantic similarity.
However, it is possible to imagine legitimate types of queries that would be difficult to specify in terms of a primarily textual query, and would be difficult to effectively utilize if so provided. For example, it has long been recognized in the search engine art that it is not straightforward to employ a textual query toward the goal of matching graphical images in a database. Because graphical images are inherently nontextual, it would require sophisticated methods of natural language processing or artificial intelligence to even begin to directly employ a textual phrase such as, “find an image that shows trees swaying in the breeze” toward finding an image that depicts such a scene. Instead, prior art search engines have employed other approaches for image search, such as for example by comparing a textual search term to text in a document that is in close proximity to an image, and making the assumption that the image is likely to be related to the topic of the proximate text. This method works to some degree, but is imperfect and often fails.
Similar problems are being posed in other, newly emerging areas of internet search. One such area is commonly referred to as “local search”. Local search is concerned with the problem of finding places, events, products, or services that are available within a specific geographic area. Local search differs from other search applications primarily in that the user is specifically concerned with local availability, implying that the desired search results should be limited to those that qualify in terms of the geographic location of the entities they describe. One reason why local availability may be important to the user is because the user may expect to visit the location at a later time in order to procure goods or services being sought. Prior art search engines typically fulfill this local qualification by various methods, such as by parsing search queries and database content for geographic clues such as street addresses or city names, and possibly additionally plotting search results on a geographically constrained map view.
However, the design of prior art search engines does not seem to recognize that a user's placement of importance on local qualification implicitly suggests that time of availability may be important as well. For example, if the target of interest is a local event, the prospect of the user actually attending the event suggests that his or her attendance must be timed to match the time of occurrence of the event. Events that occur at a time of day or on a date during which the user is not available or does not wish to attend may be of limited interest and should be eliminated from the results or given a lower relevance score. Similarly, if the topic of the search is a local retailer that offers a specific product or service to be acquired on a personal visit, then the days of the week and the times of day during which each candidate retailer is open for business becomes potentially important to scoring its relevance as a match. Retailers that are not scheduled to be open for business at a specific time or date the user may have in mind might be considered less relevant than those that will be open for business at that time.
Despite the potential importance of time availability to the user of a local search engine, prior art search engines do not support it effectively, and continue even in local search applications to provide only a primarily textual interface addressed toward primarily textually expressed search terms such as business name, business category, or names of specific products and services, and toward primarily textual expression of search results.
While it is straightforward to retrieve and express a list of businesses or events whose corresponding textual database entries match a textual search query, the issue of matching or expressing with respect to a criterion of time availability is not so straightforward. It is not immediately clear how to compose a search term in a textual interface in order to return only results that, for example, have availability on a Monday at 3:00 pm, especially if the search engine or the database it references do not employ suitable representations of time-related information. Similarly, scheduled events that occur on a one-time or repeating basis are not readily adaptable to time-related search in a prior art search engine.
Perhaps the most familiar sort of information relating to time availability in this context is the “hours of operation”, or “business hours”, of a retail or service business. A place of business that accepts walk-in business from the public typically keeps a regular schedule of time periods, usually expressed on a weekly basis upon which the schedule repeats, during which the business is open to customers, all other time periods being closed to customers or possibly open only by special appointment. The purpose for the business to schedule such hours, and by extension the ideal goal of a search engine in supporting information representative of such a schedule, is to provide potential customers, or users of said search engine, the ability to determine the availability of the products or services offered by the business at any random time that may be of interest to the user. The user therefore may have a strong interest in determining the scheduled availability of the business, and by extension its products and services, relative the time or time period in mind, with the least possible expenditure of cognitive effort.
In most consumer media, ranging from articles and advertisements, to typical web pages that describe a business, to signage posted on shopkeepers' front doors, business hours are most commonly encountered in the form of a textual or tabular representation that must be read and interpreted in order to draw conclusions about the availability of the business at a specific time. For example, such a description might read “9:00 am to 5:00 pm Monday thru Friday, 10:30 am to 3:00 pm on Saturday, 12:00 noon to 3:30 pm on Sunday”. The cognitive task of bringing a specific time of interest into consideration, and processing it relative to such a schedule description, is a significant one. Furthermore, if the user wishes to “comparison shop” among multiple businesses, or has more than one potential time of interest in mind, it rapidly becomes a daunting task to determine the respective availability of each differently scheduled business at multiple alternative times of interest.
The user who is interested in time availability is therefore bound to be frustrated with prior art search engines whenever several aspects of time availability motivate his or her search. For example, there is often no way to limit a search to businesses that are open at a specific time of interest, or to products and services that by extension are available at a time of interest, or to events that occur at a specific time of interest. Also, it is difficult to gauge the relative degree of availability of businesses, their products and services, or events, at a specific time slot, or among a range or group of alternative time slots during an agreeable interval of time. Owing at least in part to the nonobvious nature that such a solution would possess, few if any prior art search engine interfaces accommodate the convenient or effective expression of time availability as a search query component, nor do they utilize information about time availability in identifying matching items, nor do they express relative time availability in the displayed list of results. The user experience with prevailing search engines is therefore not entirely satisfactory because the user cannot specify a time of interest as part of the search query, and is forced to manually inspect the provided list of search results to determine the time availability of each, if such information is even returned.
This discussion has made it clear that prior art search engine interfaces are not equipped to allow the user to work effectively with time-related attributes of sought items. In order to do so, such interfaces would need to provide a means to establish a time condition such that time-related information associated with database items may be evaluated relative the time condition, and depiction means by which search results may be communicated in a manner expressive of their time availability at the time or during the time period represented by the time condition, or at similar times.